Depth cameras, or three dimensional (3D) cameras, are generally able to estimate the distance between the camera and various points in the objects or scenes being imaged. This distance information allows for the determination of depth across the surface of the objects which in turn enables the generation of a 3D image of the scene. These 3D images are useful in computer vision applications and for an increasing number of applications involving human-computer interaction.
Depth cameras, however, are often complex and expensive. One approach to implementing a depth camera uses structured light (SL) where a known or pre-defined pattern is projected onto the scene and a camera system attempts to capture and identify elements in the pattern. The identified elements and their location within the pattern may then be used to triangulate between the camera and the projector to estimate the depth of the scene at the location of that element. Unfortunately, the SL pattern that is captured by the camera typically differs from the SL pattern that was projected. There may be many reasons for this, including imperfections in the projector and the camera, focus problems, noise, distortion, interference and variations in reflective surfaces in the scene. These and other issues can increase the difficulty associated with correctly identifying elements in the SL pattern, resulting in errors which may adversely affect the ability of the system to estimate depth and generate a 3D image of acceptable accuracy.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.